package issystemenum

import (
	"yunj/pkg/yunj/core/enum"
)

// 定义常量
const (
	YES int = 1

	NO int = 0
)

// 实现EnumInerface接口
type IsSystem struct {
	enum.Enum[int]
}

// issystemenum.GetInstance().GetDescMap()
func (e *IsSystem) AllConstAttrs() map[int]map[string]any {
	return map[int]map[string]any{
		YES: {
			"desc":  "是",
			"color": "#2f363c", // 用于枚举背景颜色等
			"sort":  1,
		},
		NO: {
			"desc":  "否",
			"color": "#c2c2c2", // 用于枚举背景颜色等
			"sort":  2,
		},
	}
}

// instanceCache 存储已经创建的实例
var instanceCache = make(map[int]*IsSystem)

// 根据value获取枚举
func ByValue(value int) *IsSystem {
	if instance, exists := instanceCache[value]; exists {
		return instance
	}
	e := &IsSystem{}
	enum.SetEnumInstance(&e.Enum, e, value)
	instanceCache[value] = e
	return e
}

var Enum *IsSystem = func() *IsSystem {
	e := &IsSystem{}
	enum.SetEnumInstance(&e.Enum, e)
	return e
}()
